<?xml version="1.0" encoding="UTF-8"?>
<!--

       Copyright 2006-2016 the original author or authors.

       Licensed under the Apache License, Version 2.0 (the "License");
       you may not use this file except in compliance with the License.
       You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

       Unless required by applicable law or agreed to in writing, software
       distributed under the License is distributed on an "AS IS" BASIS,
       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
       See the License for the specific language governing permissions and
       limitations under the License.

-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>Running MyBatis Generator With Java</title>
  <link rel="stylesheet" type="text/css" href="../mbgstyle.css" />
</head>
<body>
<h1>Running MyBatis Generator With Java</h1>
<p>MyBatis Generator (MBG) may be invoked directly from Java.  For configuration,
you may use either an XML configuration file, or configure MBG completely with
Java.</p>
<h2>Running MBG from Java with an XML Configuration File</h2>
<p>The following code sample shows how to call MBG from Java with an XML based configuration.
   It does not
   show exception handling, but that should be obvious from the compiler
   errors :)</p>
<pre>
   List&lt;String&gt; warnings = new ArrayList&lt;String&gt;();
   boolean overwrite = true;
   File configFile = new File("generatorConfig.xml");
   ConfigurationParser cp = new ConfigurationParser(warnings);
   Configuration config = cp.parseConfiguration(configFile);
   DefaultShellCallback callback = new DefaultShellCallback(overwrite);
   MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
   myBatisGenerator.generate(null);
</pre>

<p>Notes:</p>
<ul>
   <li>Configuration file properties may be passed to the parser as a parameter on
       the ConfigurationParser constructor.  If not passed explicitly, the JVM
       system properties will be searched for the value of configuration file
       properties.  For example, the property
       <code>generated.source.dir</code> can be
       accessed in the configuration file with the escape sequence
       <code>${generated.source.dir}</code>
   </li>
   <li>If a property is specified in the configuration file and is not resolved,
       then the escaped property string will be passed "as is" into the generated code.
   </li>
</ul>

<h2>Running MBG from Java with a Java Based Configuration</h2>
<p>The following code sample shows how to call MBG from Java with a Java based configuration.
   It does
   not show exception handling, but that should be obvious from the compiler
   errors :)</p>
<pre>
   List&lt;String&gt; warnings = new ArrayList&lt;String&gt;();
   boolean overwrite = true;
   Configuration config = new Configuration();

   //   ... fill out the config object as appropriate...

   DefaultShellCallback callback = new DefaultShellCallback(overwrite);
   MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
   myBatisGenerator.generate(null);
</pre>

</body>
</html>
